package coc.core.util;

import java.lang.reflect.Field;

import com.gargoylesoftware.htmlunit.BrowserVersion;

import coo.base.exception.UncheckedException;

/**
 * 浏览器版本工具类。
 */
public class BrowserVersionUtils {
	/**
	 * 根据别名获取浏览器版本对象。
	 * 
	 * @param nickName
	 *            别名(FF3.6/FF10/FF17/IE6/IE7/IE8/IE9/Chrome16/Chrome)
	 * @return 返回别名对象的浏览器版本对象。
	 */
	public static BrowserVersion getBrowserVersion(String nickName) {
		Field[] fields = BrowserVersion.class.getFields();
		for (Field field : fields) {
			try {
				Object fieldValue = field.get(BrowserVersion.class);
				if (fieldValue instanceof BrowserVersion) {
					BrowserVersion browserVersion = (BrowserVersion) fieldValue;
					if (nickName.equalsIgnoreCase(browserVersion.getNickname())) {
						return browserVersion;
					}
				}
			} catch (Exception e) {
				throw new UncheckedException("获取浏览器版本对象时发生异常。", e);
			}
		}
		throw new UncheckedException("没有找到别名为[" + nickName + "]的浏览器版本对象。");
	}
}
